home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v08i028: GB2 - Galactic Bloodshed, an empire-like war game [Ver. 1.0], Patch1c
- Message-ID: <4577@tekred.CNA.TEK.COM>
- Date: 15 Sep 89 15:27:54 GMT
- Sender: nobody@tekred.CNA.TEK.COM
- Lines: 2007
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: VANCLEEF@mps.ohio-state.edu
- Posting-number: Volume 8, Issue 28
- Archive-name: GB2/Patch1c
- Patch-To: GB2: Volume 7, Issue 44-51
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 3 (of 4)."
- # Contents: patches01c
- # Wrapped by billr@saab on Fri Sep 15 08:34:48 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patches01c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patches01c'\"
- else
- echo shar: Extracting \"'patches01c'\" \(50119 characters\)
- sed "s/^X//" >'patches01c' <<'END_OF_FILE'
- X*** ../../GB2/load.c Thu Jul 6 07:18:13 1989
- X--- load.c Fri Sep 15 07:28:12 1989
- X***************
- X*** 41,47 ****
- X if (!getship(load_shdata,&s,shipno)) {
- X load_handler();
- X }
- X! if (s->owner!=Playernum || s->is_dead) {
- X DontOwnErr(shipno);
- X printf("(%d)\n",s->owner);
- X free(s);
- X--- 41,47 ----
- X if (!getship(load_shdata,&s,shipno)) {
- X load_handler();
- X }
- X! if (s->owner!=Playernum || !s->is_alive) {
- X DontOwnErr(shipno);
- X printf("(%d)\n",s->owner);
- X free(s);
- X***************
- X*** 64,78 ****
- X
- X proc = 0;
- X
- X! if (s->type == OTYPE_TRANSDEV && s->orders.object.number > 0) {
- X! Locks(1);
- X! if (!getship(load_shdata,&s2, s->orders.object.number)) {
- X printf("The hopper seems to be blocked.\n");
- X load_handler();
- X }
- X- Locks(0);
- X
- X! if (s2->is_dead) {
- X printf("The target device does not exist.\n");
- X load_handler();
- X }
- X--- 64,76 ----
- X
- X proc = 0;
- X
- X! if (s->type == OTYPE_TRANSDEV && s->object.number > 0) {
- X! if (!getship(load_shdata,&s2, s->object.number)) {
- X printf("The hopper seems to be blocked.\n");
- X load_handler();
- X }
- X
- X! if (!s2->is_alive) {
- X printf("The target device does not exist.\n");
- X load_handler();
- X }
- X***************
- X*** 101,109 ****
- X if (s->whatdest==LEVEL_PLAN)
- X printf("Ship #%d at %.0f,%.0f\n", shipno,s->xpos, s->ypos);
- X else {
- X! Locks(1);
- X! if (!getship(load_shdata, &s2, s->destshipno) || s2->is_dead ||
- X! !(s2->is_docked && s2->whatdest==LEVEL_SHIP
- X && s2->destshipno==shipno) ) {
- X /* the ship it was docked with died or
- X undocked with it or something. */
- X--- 99,108 ----
- X if (s->whatdest==LEVEL_PLAN)
- X printf("Ship #%d at %.0f,%.0f\n", shipno,s->xpos, s->ypos);
- X else {
- X! if (!getship(load_shdata, &s2, s->destshipno)
- X! || !s2->is_alive
- X! || !s->object.number4 &&
- X! !(s2->is_docked && s2->whatdest==LEVEL_SHIP
- X && s2->destshipno==shipno) ) {
- X /* the ship it was docked with died or
- X undocked with it or something. */
- X***************
- X*** 115,121 ****
- X printf("ship #%u is not docked.\n", s->destshipno);
- X load_handler();
- X }
- X- Locks(0);
- X printf("Ship #%d docked with %s #%d\n", shipno,
- X Shipnames[s2->type], s->destshipno);
- X sh = 1;
- X--- 114,119 ----
- X***************
- X*** 359,366 ****
- X
- X putship(load_shdata,s,shipno);
- X
- X! if (s->type==OTYPE_TRANSDEV && s->orders.object.number > 0) {
- X
- X printf("Zap\007!\n");
- X
- X /* send stuff to other ship (could be transport device) */
- X--- 357,364 ----
- X
- X putship(load_shdata,s,shipno);
- X
- X! if (s->type==OTYPE_TRANSDEV && s->object.number > 0) {
- X
- X printf("Zap\007!\n");
- X
- X /* send stuff to other ship (could be transport device) */
- X***************
- X*** 412,418 ****
- X if (s2->owner!=s->owner) {
- X teleg_add("", telegram_buf);
- X teleg_add("BULLETIN!\n\n Audio-vibatory-physio-molecular transport device #",telegram_buf);
- X! sprintf(buf,"%d just gave your ship #%d the following:\n", shipno, s->orders.object.number);
- X teleg_add(buf,telegram_buf);
- X teleg_add(bufr,telegram_buf);
- X teleg_add(bufd,telegram_buf);
- X--- 410,416 ----
- X if (s2->owner!=s->owner) {
- X teleg_add("", telegram_buf);
- X teleg_add("BULLETIN!\n\n Audio-vibatory-physio-molecular transport device #",telegram_buf);
- X! sprintf(buf,"%d just gave your ship #%d the following:\n", shipno, s->object.number);
- X teleg_add(buf,telegram_buf);
- X teleg_add(bufr,telegram_buf);
- X teleg_add(bufd,telegram_buf);
- X***************
- X*** 422,428 ****
- X }
- X
- X putship(load_shdata,s,shipno);
- X! putship(load_shdata, s2, s->orders.object.number);
- X
- X
- X } else if (sh) {
- X--- 420,426 ----
- X }
- X
- X putship(load_shdata,s,shipno);
- X! putship(load_shdata, s2, s->object.number);
- X
- X
- X } else if (sh) {
- X***************
- X*** 454,460 ****
- X if (s2->owner!=s->owner) {
- X teleg_add("", telegram_buf);
- X teleg_add("BULLETIN!\n\n Audio-vibatory-physio-molecular transport device #",telegram_buf);
- X! sprintf(buf,"%d just gave your ship #%d the following:\n", shipno, s->orders.object.number);
- X teleg_add(buf,telegram_buf);
- X teleg_add(bufr,telegram_buf);
- X teleg_add(bufd,telegram_buf);
- X--- 452,458 ----
- X if (s2->owner!=s->owner) {
- X teleg_add("", telegram_buf);
- X teleg_add("BULLETIN!\n\n Audio-vibatory-physio-molecular transport device #",telegram_buf);
- X! sprintf(buf,"%d just gave your ship #%d the following:\n", shipno, s->object.number);
- X teleg_add(buf,telegram_buf);
- X teleg_add(bufr,telegram_buf);
- X teleg_add(bufd,telegram_buf);
- X*** ../../GB2/makeplanet.c Wed Jul 5 15:15:31 1989
- X--- makeplanet.c Fri Sep 15 07:28:14 1989
- X***************
- X*** 69,75 ****
- X s = &Sector(planet,x,y);
- X s->des = DES_GAS; /* for gasgiant */
- X s->fert = int_rand(35,55);
- X! s->resource = int_rand(3,20);
- X }
- X if (planet.Maxx > MAP_GASGIANT_BANDMIN) {
- X int nbands;
- X--- 69,75 ----
- X s = &Sector(planet,x,y);
- X s->des = DES_GAS; /* for gasgiant */
- X s->fert = int_rand(35,55);
- X! s->resource = int_rand(20,40);
- X }
- X if (planet.Maxx > MAP_GASGIANT_BANDMIN) {
- X int nbands;
- X***************
- X*** 79,86 ****
- X for (x=0; x<planet.Maxx; x++) {
- X s = &Sector(planet,x,y);
- X s->des = DES_SEA; /* make random bands of water */
- X! s->fert += int_rand(10,24);
- X! s->resource += int_rand(30,40);
- X }
- X }
- X for (i=0; i<=MAP_ISLANDS*2; i++) {
- X--- 79,86 ----
- X for (x=0; x<planet.Maxx; x++) {
- X s = &Sector(planet,x,y);
- X s->des = DES_SEA; /* make random bands of water */
- X! s->fert += int_rand(20,30);
- X! s->resource += int_rand(40,60);
- X }
- X }
- X for (i=0; i<=MAP_ISLANDS*2; i++) {
- X***************
- X*** 88,94 ****
- X x=int_rand(1,planet.Maxx-2);
- X s = &Sector(planet,x,y);
- X s->des = DES_SEA; /* make random spots of water */
- X! s->fert += int_rand(12,24);
- X }
- X } else {
- X for (i=0; i<MAP_ISLANDS*2; i++) {
- X--- 88,94 ----
- X x=int_rand(1,planet.Maxx-2);
- X s = &Sector(planet,x,y);
- X s->des = DES_SEA; /* make random spots of water */
- X! s->fert += int_rand(20,30);
- X }
- X } else {
- X for (i=0; i<MAP_ISLANDS*2; i++) {
- X***************
- X*** 100,106 ****
- X s->fert = int_rand(10,21);
- X } else {
- X s->des=DES_SEA;
- X! s->fert=int_rand(10,22);
- X }
- X }
- X Smashup(&planet,int_rand(2,4),DES_SEA,0,0,0);
- X--- 100,106 ----
- X s->fert = int_rand(10,21);
- X } else {
- X s->des=DES_SEA;
- X! s->fert=int_rand(20,30);
- X }
- X }
- X Smashup(&planet,int_rand(2,4),DES_SEA,0,0,0);
- X*** ../../GB2/map.c Wed Jul 5 15:15:33 1989
- X--- map.c Fri Sep 15 07:28:16 1989
- X***************
- X*** 3,13 ****
- X--- 3,21 ----
- X * map.c -- display sector map of current planet
- X */
- X
- X+ #define S_X (stdscr->_maxx - NAMESIZE)
- X+ #define S_Y (stdscr->_maxy - 1)
- X+ #define Midx ((S_X - NAMESIZE)/2.0)
- X+ #define Midy (S_Y /2.0)
- X+
- X #include "vars.h"
- X #include "ships.h"
- X #include "races.h"
- X+ #include <curses.h>
- X extern float compatibility();
- X+ int owned();
- X char desshow();
- X+ char Digits[]={'0','1','2','3','4','5','6','7','8','9'};
- X
- X map(APcount, argn,args)
- X int APcount;
- X***************
- X*** 18,38 ****
- X planettype *p;
- X placetype where;
- X
- X! Locks(1);
- X where = Getplace(args[1],0);
- X! Locks(0);
- X if (where.err) return;
- X
- X if (where.level==LEVEL_PLAN) {
- X openpdata(&map_pdata);
- X- Locks(1);
- X getplanet(map_pdata,&p,Stars[where.snum]->planetpos[where.pnum]);
- X- Locks(0);
- X close(map_pdata);
- X!
- X show_map(p,1); /* 1 means display data */
- X
- X free(p);
- X
- X if (Stars[where.snum]->stability > 50)
- X printf("WARNING! This planet's primary is unstable.\n");
- X--- 26,46 ----
- X planettype *p;
- X placetype where;
- X
- X!
- X where = Getplace(args[1],0);
- X!
- X if (where.err) return;
- X
- X if (where.level==LEVEL_PLAN) {
- X+
- X openpdata(&map_pdata);
- X getplanet(map_pdata,&p,Stars[where.snum]->planetpos[where.pnum]);
- X close(map_pdata);
- X!
- X show_map(p,1); /* 1 means display data */
- X
- X free(p);
- X+ printf("\n `%s' \n\n",Stars[where.snum]->pnames[where.pnum]);
- X
- X if (Stars[where.snum]->stability > 50)
- X printf("WARNING! This planet's primary is unstable.\n");
- X***************
- X*** 50,59 ****
- X planettype *p;
- X register int show;
- X {
- X! register int x,y,i,f;
- X int sh,iq,map_sectdata,map_shdata;
- X shiptype *s;
- X! char shiplocs[MAX_X][MAX_Y];
- X
- X bzero((char *)shiplocs, sizeof(shiplocs));
- X
- X--- 58,67 ----
- X planettype *p;
- X register int show;
- X {
- X! register int x,y,i,f,address,owned1;
- X int sh,iq,map_sectdata,map_shdata;
- X shiptype *s;
- X! char shiplocs[MAX_X][MAX_Y],dummy;
- X
- X bzero((char *)shiplocs, sizeof(shiplocs));
- X
- X***************
- X*** 62,68 ****
- X close(map_sectdata);
- X
- X openshdata(&map_shdata);
- X- Locks(1);
- X /* traverse ship list on planet. */
- X sh = p->ships;
- X iq = 0;
- X--- 70,75 ----
- X***************
- X*** 79,85 ****
- X sh = p->ships;
- X while (sh) {
- X (void)getship(map_shdata,&s, sh);
- X! if (!s->is_dead && s->is_docked && s->whatdest==LEVEL_PLAN &&
- X s->xpos < p->Maxx && s->xpos >= 0 &&
- X s->ypos < p->Maxy && s->ypos >= 0 &&
- X ( (s->owner == Playernum) || (iq == 1) ) )
- X--- 86,92 ----
- X sh = p->ships;
- X while (sh) {
- X (void)getship(map_shdata,&s, sh);
- X! if (s->is_alive && s->is_docked && s->whatdest==LEVEL_PLAN &&
- X s->xpos < p->Maxx && s->xpos >= 0 &&
- X s->ypos < p->Maxy && s->ypos >= 0 &&
- X ( (s->owner == Playernum) || (iq == 1) ) )
- X***************
- X*** 87,161 ****
- X sh = s->nextship;
- X free(s);
- X }
- X- Locks(0);
- X close(map_shdata);
- X
- X
- X! printf(" ");
- X! for (x=0; x<p->Maxx; x++)
- X! printf("%d",x/10);
- X! if (show)
- X! printf(" Sects %s: %d", Race->Thing ? "covered" : "owned",
- X p->info[Playernum-1].numsectsowned);
- X! printf("\n ");
- X! for (x=0; x<p->Maxx; x++)
- X! printf("%d",x%10);
- X! if (show) {
- X! int i,f=0;
- X! printf(" Aliens:");
- X if (p->is_explored || Race->tech >= TECH_EXPLORE) {
- X for (i=1; i<MAXPLAYERS; i++)
- X if (p->info[i-1].numsectsowned && i!=Playernum) {
- X f=1;
- X! printf("%c%d", isset(Race->atwar,i) ? '*' : ' ', i);
- X }
- X! if (!f) printf("(none)");
- X! } else printf("???");
- X! }
- X! putchr('\n');
- X
- X! for (y=0; y<p->Maxy; y++) {
- X! printf("%2d ",y);
- X! for (x=0; x<p->Maxx; x++) {
- X! if (shiplocs[x][y])
- X! putchr(shiplocs[x][y]);
- X! else
- X! putchr(desshow(p, x, y));
- X! }
- X! if (show)
- X! switch (y) { /* give stockpile info */
- X! case 0: printf("| Combat readiness: %u", p->info[Playernum-1].comread);
- X! break;
- X! case 1: printf("| Compatibility: %.2f%s",compatibility(p,Race),
- X! p->conditions[TOXIC] > 50 ? "(TOXIC)" : "");
- X! break;
- X! case 3:printf("| Resource stockpile:%u",p->info[Playernum-1].resource);
- X! break;
- X! case 4: printf("| Fuel stockpile: %u",p->info[Playernum-1].fuel);
- X! break;
- X! case 5:printf("| Destruct cap: %u",p->info[Playernum-1].destruct);
- X! break;
- X! case 6:printf("| %s: %u (%u)", Race->Thing ? "Tons of biomass" :
- X! "Total Population", p->popn, p->maxpopn);
- X! break;
- X! /*case 7:
- X! break;
- X! case 8:
- X! break;
- X! case 9:
- X! break;
- X! case 10:
- X! break;*/
- X! default: printf("|");
- X! break;
- X! }
- X! putchr('\n');
- X }
- X
- X-
- X }
- X
- X
- X char desshow(p,x,y)
- X register planettype *p;
- X register int x,y;
- X--- 94,181 ----
- X sh = s->nextship;
- X free(s);
- X }
- X close(map_shdata);
- X
- X+ clear();
- X
- X! for (y=0; y<2; y++){
- X! for (x=0; x<p->Maxx; x++) {
- X! if(y==0)address = x/10;
- X! if(y==1)address = x-10 * (x/10);
- X! mvaddch(y,x+3,Digits[address]);
- X! }
- X! }
- X!
- X! for (y=0; y<p->Maxy; y++) {
- X! address = y/10;
- X! mvaddch(y+2,0,Digits[address]);
- X! address = y - 10*(y/10);
- X! mvaddch(y+2,1,Digits[address]);
- X! for (x=0; x<p->Maxx; x++) {
- X! owned1=owned(p,x,y);
- X! if (shiplocs[x][y])
- X! {
- X! if(owned1)standout();
- X! mvaddch(y+2,x+3,shiplocs[x][y]);
- X! if(owned1)standend();
- X! }
- X! else
- X! {
- X! if(owned1)standout();
- X! mvaddch(y+2,x+3, desshow(p,x,y));
- X! if(owned1)standend();
- X! }
- X! }
- X! }
- X!
- X! if (show){
- X!
- X! move(p->Maxy+3,0);
- X! printw(" Sects %s: %u", Race->Thing ? "covered" : "owned",
- X p->info[Playernum-1].numsectsowned);
- X! printw(" Aliens:");
- X if (p->is_explored || Race->tech >= TECH_EXPLORE) {
- X for (i=1; i<MAXPLAYERS; i++)
- X if (p->info[i-1].numsectsowned && i!=Playernum) {
- X f=1;
- X! printw("%c%d", isset(Race->atwar,i) ? '*' : ' ', i);
- X }
- X! if (!f) printw("(none)");
- X! } else printw("???");
- X
- X! move(p->Maxy+4,0);
- X! printw(" Mobilization : %d (%d)", p->info[Playernum-1].comread,
- X! p->info[Playernum-1].mob_set);
- X! printw(" Compatibility: %.2f",compatibility(p,Race));
- X! if(p->conditions[TOXIC]>50)
- X! printw(" %u percent TOXIC",p->conditions[TOXIC]);
- X! move(p->Maxy+5,0);
- X! printw(" Resource stockpile:%d",p->info[Playernum-1].resource);
- X! printw(" Fuel stockpile: %d",p->info[Playernum-1].fuel);
- X! move(p->Maxy+6,0);
- X! printw(" Destruct cap: %d",p->info[Playernum-1].destruct);
- X! printw(" %s: %d (%d)", Race->Thing ? "Tons of biomass" :
- X! "Total Population", p->popn,
- X! round_rand(.01*(100.-p->conditions[TOXIC])*p->maxpopn) );
- X }
- X+ move(p->Maxy+7, 0);
- X+ refresh();
- X
- X }
- X+ int owned(p,x,y)
- X+ register planettype *p;
- X+ register int x,y;
- X+ {
- X+ register sectortype *s;
- X+ register int owned0;
- X
- X+ owned0=0;
- X+ s = &Sector(*p,x,y);
- X
- X+ if(s->owner==Playernum)owned0=1;
- X+ return owned0;
- X+ }
- X+
- X char desshow(p,x,y)
- X register planettype *p;
- X register int x,y;
- X***************
- X*** 170,220 ****
- X if (s->amoeba)
- X return Shipltrs[OTYPE_AMOEBA];
- X
- X
- X- /* owned by you */
- X- if (s->owner==Playernum) {
- X
- X- if (Race->Thing)
- X- return CHAR_OWNED_THING;
- X if (s->is_wasted)
- X! return CHAR_OWNED_WASTELAND;
- X switch (s->des) {
- X! case DES_SEA: return CHAR_OWNED_SEA;
- X! case DES_LAND: return CHAR_OWNED_LAND;
- X! case DES_MOUNT: return CHAR_OWNED_MOUNT;
- X! case DES_GAS: return CHAR_OWNED_GAS;
- X case DES_PLATED: return CHAR_PLATED;
- X! case DES_ICE: return CHAR_OWNED_ICE;
- X default: return('!');
- X }
- X
- X- /* un-owned by anybody */
- X-
- X- } else if (!s->owner) {
- X- if (!p->is_explored && Race->tech < TECH_EXPLORE) {
- X- if ( !( (x>0 && (s-1)->owner==Playernum) ||
- X- (x<p->Maxx-1 && (s+1)->owner==Playernum) ||
- X- (y>0 && (s-p->Maxx)->owner==Playernum) ||
- X- (y<p->Maxy-1 && (s+p->Maxx)->owner==Playernum) ) )
- X- return CHAR_CLOAKED;
- X- }
- X-
- X- if (s->is_wasted)
- X- return(CHAR_WASTELAND);
- X-
- X- switch (s->des) {
- X- case DES_SEA: return(CHAR_SEA);
- X- case DES_LAND: return(CHAR_LAND);
- X- case DES_MOUNT: return(CHAR_MOUNT);
- X- case DES_GAS: return(CHAR_GAS);
- X- case DES_ICE: return CHAR_ICE;
- X- case DES_PLATED: return(CHAR_PLATED);
- X- default: return('!');
- X- }
- X-
- X- /* different owner */
- X-
- X- } else
- X- return CHAR_DIFFOWNED;
- X
- X }
- X--- 190,211 ----
- X if (s->amoeba)
- X return Shipltrs[OTYPE_AMOEBA];
- X
- X+ if (s->owner != Playernum && s->owner > 0)
- X+ /* return CHAR_DIFFOWNED; */
- X+ return (Digits[s->owner % 10]);
- X
- X
- X if (s->is_wasted)
- X! return CHAR_WASTELAND;
- X switch (s->des) {
- X! case DES_SEA: return CHAR_SEA;
- X! case DES_LAND: return CHAR_LAND;
- X! case DES_MOUNT: return CHAR_MOUNT;
- X! case DES_GAS: return CHAR_GAS;
- X case DES_PLATED: return CHAR_PLATED;
- X! case DES_ICE: return CHAR_ICE;
- X default: return('!');
- X }
- X
- X
- X }
- X*** ../../GB2/max.c Wed Jul 5 15:15:34 1989
- X--- max.c Fri Sep 15 07:28:18 1989
- X***************
- X*** 20,25 ****
- X--- 20,26 ----
- X reg sectortype *p;
- X float c; /* (compatibility) */
- X {
- X+
- X return
- X (int)(
- X ( powscale(p->eff)*FACTOR_FERT_SUPPORT * p->fert + 1.0) *
- X*** ../../GB2/misc.c Wed Jul 5 15:15:35 1989
- X--- misc.c Fri Sep 15 07:28:19 1989
- X***************
- X*** 18,21 ****
- X return (x+5.0) / (x+10.0);
- X }
- X
- X-
- X--- 18,20 ----
- X*** ../../GB2/moveplanet.c Wed Jul 5 15:15:37 1989
- X--- moveplanet.c Fri Sep 15 07:28:24 1989
- X***************
- X*** 48,54 ****
- X
- X sh = planet->ships;
- X while (sh) {
- X! if ( (ship = ships[sh]) && !ship->is_dead)
- X /* don't do landed ships */
- X if (!(ship->is_docked && ship->whatdest==LEVEL_PLAN)) {
- X printf(" orb sh #%d\n",sh);
- X--- 48,55 ----
- X
- X sh = planet->ships;
- X while (sh) {
- X! printf("# %d\n",sh);
- X! if ( (ship = ships[sh]) && ship->is_alive)
- X /* don't do landed ships */
- X if (!(ship->is_docked && ship->whatdest==LEVEL_PLAN)) {
- X printf(" orb sh #%d\n",sh);
- X***************
- X*** 57,63 ****
- X }
- X sh = ship->nextship;
- X }
- X!
- X
- X planet->xpos += xadd;
- X planet->ypos += yadd;
- X--- 58,64 ----
- X }
- X sh = ship->nextship;
- X }
- X! printf("**** \n");
- X
- X planet->xpos += xadd;
- X planet->ypos += yadd;
- X*** ../../GB2/moveship.c Wed Jul 5 15:15:38 1989
- X--- moveship.c Fri Sep 15 07:28:27 1989
- X***************
- X*** 29,37 ****
- X int shipno;
- X shiptype *s;
- X {
- X! double heading,stardist,movedist,truedist,dist,xdest,ydest,sn,cs;
- X char buf[200];
- X! float fuse,mfactor;
- X int destlevel,deststar=0,destpnum=0;
- X bool move_err = 0;
- X shiptype *dsh;
- X--- 29,37 ----
- X int shipno;
- X shiptype *s;
- X {
- X! double stardist,movedist,truedist,dist,xdest,ydest,sn,cs;
- X char buf[200];
- X! float fuse,mfactor,heading;
- X int destlevel,deststar=0,destpnum=0;
- X bool move_err = 0;
- X shiptype *dsh;
- X***************
- X*** 39,48 ****
- X planettype *opl,*dpl;
- X
- X
- X- printf("moving ship #%d\n",shipno);
- X
- X! if (speed_rating(s) && !s->is_docked && !s->is_dead && s->whatdest!=LEVEL_UNIV) {
- X
- X /* subtract fuel from the ship */
- X fuse = FuelConsts[s->speed] * FUEL_USE;
- X
- X--- 39,50 ----
- X planettype *opl,*dpl;
- X
- X
- X
- X! if (s->speed && !s->is_docked && s->is_alive && (s->whatdest!=LEVEL_UNIV
- X! || s->navigate.on) ) {
- X
- X+ printf("moving ship #%d\n",shipno);
- X+
- X /* subtract fuel from the ship */
- X fuse = FuelConsts[s->speed] * FUEL_USE;
- X
- X***************
- X*** 60,71 ****
- X }
- X return;
- X }
- X
- X-
- X /******* move the ship towards dest ******/
- X
- X
- X
- X switch (s->whatdest) {
- X case LEVEL_STAR:
- X destlevel = LEVEL_STAR;
- X--- 62,88 ----
- X }
- X return;
- X }
- X+ if(s->navigate.turns == 0) s->navigate.on = 0;
- X
- X /******* move the ship towards dest ******/
- X+ if(s->navigate.on){ /* follow navigational orders */
- X+ heading = .0174329252*s->navigate.bearing;
- X+ mfactor = .01 * (100 - s->damage) * SpeedConsts[s->speed] * MoveConsts[s->whatorbits]
- X+ / (logscale((int)s->mass) );
- X+ s->fuel -= fuse;
- X+ s->mass -= fuse * MASS_FUEL;
- X
- X+ sn = sin(heading);
- X+ cs = cos(heading);
- X+ xdest = sn * mfactor;
- X+ ydest = cs * mfactor;
- X
- X+ s->xpos += xdest;
- X+ s->ypos -= ydest;
- X
- X+ s->navigate.turns --;
- X+
- X+ } else { /* navigate is off */
- X switch (s->whatdest) {
- X case LEVEL_STAR:
- X destlevel = LEVEL_STAR;
- X***************
- X*** 102,108 ****
- X /* update new xpos,ypos */
- X heading = atan2( xdest-s->xpos,
- X ((ydest - s->ypos)==0.0) ? 0.000001 : (ydest-s->ypos) );
- X! mfactor = SpeedConsts[s->speed] * MoveConsts[s->whatorbits]
- X / (logscale((int)s->mass) );
- X
- X
- X--- 119,125 ----
- X /* update new xpos,ypos */
- X heading = atan2( xdest-s->xpos,
- X ((ydest - s->ypos)==0.0) ? 0.000001 : (ydest-s->ypos) );
- X! mfactor = .01 * (100 - s->damage) * SpeedConsts[s->speed] * MoveConsts[s->whatorbits]
- X / (logscale((int)s->mass) );
- X
- X
- X***************
- X*** 126,135 ****
- X
- X if (s->whatdest==LEVEL_SHIP && s->owner!=ships[s->destshipno]->owner
- X && !isset(races[s->owner]->allied, ships[s->destshipno]->owner)
- X! && truedist > SYSTEMSIZE*2.0) {
- X /* (an allied ship lets you follow it..) */
- X /* we lost sight of the destination ship. */
- X! /* should change SYSTEMSIZE*2.0 to calculated gun range.. */
- X s->whatdest = LEVEL_UNIV;
- X teleg_add("",telegram_buf);
- X sprintf(buf,"Telecomm from ship #%d at %s\n\n",
- X--- 143,152 ----
- X
- X if (s->whatdest==LEVEL_SHIP && s->owner!=ships[s->destshipno]->owner
- X && !isset(races[s->owner]->allied, ships[s->destshipno]->owner)
- X! && truedist > SYSTEMSIZE*4.0) {
- X /* (an allied ship lets you follow it..) */
- X /* we lost sight of the destination ship. */
- X! /* should change SYSTEMSIZE*1.0 to calculated gun range.. */
- X s->whatdest = LEVEL_UNIV;
- X teleg_add("",telegram_buf);
- X sprintf(buf,"Telecomm from ship #%d at %s\n\n",
- X***************
- X*** 246,251 ****
- X--- 263,270 ----
- X
- X }
- X
- X+ } /* if 'destination' orders */
- X+
- X }
- X
- X
- X***************
- X*** 263,269 ****
- X int shipno;
- X {
- X
- X! if (!s->is_dead)
- X switch (s->whatorbits) {
- X case LEVEL_UNIV:
- X s->nextship = sdata->ships;
- X--- 282,288 ----
- X int shipno;
- X {
- X
- X! if (s->is_alive)
- X switch (s->whatorbits) {
- X case LEVEL_UNIV:
- X s->nextship = sdata->ships;
- X*** ../../GB2/orbit.c Wed Jul 5 15:15:41 1989
- X--- orbit.c Fri Sep 15 07:28:33 1989
- X***************
- X*** 19,27 ****
- X--- 19,29 ----
- X #define Midx ((S_X - NAMESIZE)/2.0)
- X #define Midy (S_Y /2.0)
- X
- X+
- X #include "vars.h"
- X #include "ships.h"
- X #include <curses.h>
- X+ #include <stdio.h>
- X extern char Shipltrs[];
- X float Lastx, Lasty, Zoom;
- X extern int God;
- X***************
- X*** 93,101 ****
- X openshdata(&orbit_shdata);
- X
- X while (sh) {
- X- Locks(1);
- X (void)getship(orbit_shdata, &s, sh);
- X- Locks(0);
- X if (DontDispNum != sh)
- X DispShip(&where, s, sh, NULL );
- X sh = s->nextship;
- X--- 95,101 ----
- X***************
- X*** 114,122 ****
- X
- X for (i=0; i<Stars[where.snum]->numplanets; i++) {
- X if (DontDispNum!=i) {
- X- Locks(1);
- X getplanet(orbit_pdata,&p,Stars[where.snum]->planetpos[i]);
- X- Locks(0);
- X DispPlanet(LEVEL_STAR,p,Stars[where.snum]->pnames[i],DontDispPlanets);
- X free(p);
- X }
- X--- 114,120 ----
- X***************
- X*** 129,137 ****
- X if(sh = Stars[where.snum]->ships){
- X openshdata(&orbit_shdata);
- X while (sh) {
- X- Locks(1);
- X (void)getship(orbit_shdata, &s, sh);
- X- Locks(0);
- X if(s->owner == Playernum && s->popn)
- X iq = 1; /* you are there to sight, need a crew */
- X sh = s->nextship;
- X--- 127,133 ----
- X***************
- X*** 145,153 ****
- X openshdata(&orbit_shdata);
- X
- X while (sh) {
- X- Locks(1);
- X (void)getship(orbit_shdata, &s, sh);
- X- Locks(0);
- X if (DontDispNum != sh && !(s->owner != Playernum && s->type == STYPE_MINE) ) {
- X
- X if((s->owner == Playernum) || (iq == 1))
- X--- 141,147 ----
- X***************
- X*** 163,171 ****
- X case LEVEL_PLAN:
- X
- X openpdata(&orbit_pdata);
- X- Locks(1);
- X getplanet(orbit_pdata,&p,Stars[where.snum]->planetpos[where.pnum]);
- X- Locks(0);
- X close(orbit_pdata);
- X DispPlanet(LEVEL_PLAN, p, Stars[where.snum]->pnames[where.pnum], DontDispPlanets);
- X
- X--- 157,163 ----
- X***************
- X*** 176,184 ****
- X if(sh = p->ships){
- X openshdata(&orbit_shdata);
- X while (sh) {
- X- Locks(1);
- X (void)getship(orbit_shdata, &s, sh);
- X- Locks(0);
- X if(s->owner == Playernum && s->popn)
- X iq = 1; /* you are there to sight, need a crew */
- X sh = s->nextship;
- X--- 168,174 ----
- X***************
- X*** 192,200 ****
- X if (!DontDispShips && (sh = p->ships)) {
- X openshdata(&orbit_shdata);
- X while (sh) {
- X- Locks(1);
- X (void)getship(orbit_shdata, &s, sh);
- X- Locks(0);
- X if (DontDispNum != sh) {
- X if( !(s->is_docked && s->whatdest==LEVEL_PLAN) ) {
- X if((s->owner == Playernum) || (iq ==1))
- X--- 182,188 ----
- X***************
- X*** 365,371 ****
- X startype *star;
- X int DontDispStars;
- X {
- X! int x,y;
- X register int x2,y2;
- X float fac;
- X char *c;
- X--- 353,360 ----
- X startype *star;
- X int DontDispStars;
- X {
- X! planettype *p;
- X! int x,y,i,col,orbit_pdata;
- X register int x2,y2;
- X float fac;
- X char *c;
- X***************
- X*** 372,378 ****
- X
- X if (level==LEVEL_UNIV) {
- X fac = 1.0;
- X! x = (int)(Midx+(star->xpos-Lastx)*(Midx/UNIVSIZE) / Zoom)*1.1;
- X y = (int)(Midy+(star->ypos-Lasty)*(Midy/UNIVSIZE) / Zoom);
- X } else if (level==LEVEL_STAR) {
- X fac = 1000.0;
- X--- 361,367 ----
- X
- X if (level==LEVEL_UNIV) {
- X fac = 1.0;
- X! x = (int)(Midx+(star->xpos-Lastx)*(Midx/UNIVSIZE) / Zoom);
- X y = (int)(Midy+(star->ypos-Lasty)*(Midy/UNIVSIZE) / Zoom);
- X } else if (level==LEVEL_STAR) {
- X fac = 1000.0;
- X***************
- X*** 383,392 ****
- X DispArray(x, y, 11,7, Novae[star->nova_stage-1], fac);
- X else if (y>=0 && y<=S_Y && x>=0 && x<=S_X) {
- X move(y,x);
- X addch('*');
- X if (!DontDispStars) {
- X move(y, x+2);
- X! addstr(star->name);
- X }
- X }
- X
- X--- 372,393 ----
- X DispArray(x, y, 11,7, Novae[star->nova_stage-1], fac);
- X else if (y>=0 && y<=S_Y && x>=0 && x<=S_X) {
- X move(y,x);
- X+ /* check to see if any of its planets are colonized by the player */
- X+ openpdata(&orbit_pdata);
- X+ col=0;
- X+ for (i=0; i<star->numplanets; i++) {
- X+ getplanet(orbit_pdata,&p,star->planetpos[i]);
- X+ if(p->info[Playernum-1].numsectsowned >0) col =1;
- X+ free(p);
- X+ }
- X+ close(orbit_pdata);
- X+
- X+ if(col)standout();
- X addch('*');
- X+ if(col)standend();
- X if (!DontDispStars) {
- X move(y, x+2);
- X! addstr (star->name);
- X }
- X }
- X
- X***************
- X*** 409,415 ****
- X--- 410,418 ----
- X x = (int)(Midx +(-Lastx)*(Midx/PLORBITSIZE) / Zoom);
- X }
- X if (x>=0 && x<=S_X && y>=0 && y<=S_Y) {
- X+ if(p->info[Playernum-1].numsectsowned >0)standout();
- X mvaddch(y,x,'@');
- X+ standend();
- X if (!DontDispPlanets) {
- X addch(' ');
- X addstr(name);
- X***************
- X*** 430,480 ****
- X
- X " ",
- X " ",
- X! "\\===m===/",
- X " ",
- X " ",
- X
- X! " | ",
- X! " \\\\ ",
- X! " m ",
- X " \\\\ ",
- X! " \\__",
- X
- X " / ",
- X " || ",
- X- " m ",
- X " || ",
- X " \\ ",
- X
- X " __",
- X " // ",
- X! " m ",
- X! " // ",
- X " | ",
- X
- X " ",
- X " ",
- X! "/===m===\\", /* cc thinks this is a quoted " w/o the \ */
- X " ",
- X " ",
- X
- X "__ ",
- X " \\\\ ", /* weird stuff again */
- X! " m ",
- X! " \\\\ ",
- X! " | ",
- X
- X " \\ ",
- X " || ",
- X- " m ",
- X " || ",
- X " / ",
- X
- X! " | ",
- X! " // ",
- X! " m ",
- X "__// ",
- X " "
- X };
- X
- X
- X--- 433,484 ----
- X
- X " ",
- X " ",
- X! "\\=======/",
- X " ",
- X " ",
- X
- X! " | ",
- X! " \\ ",
- X! " \\\\ ",
- X " \\\\ ",
- X! " \\\\__",
- X
- X " / ",
- X " || ",
- X " || ",
- X+ " || ",
- X " \\ ",
- X
- X " __",
- X " // ",
- X! " // ",
- X! " / ",
- X " | ",
- X
- X " ",
- X " ",
- X! "/=======\\", /* cc thinks this is a quoted " w/o the \ */
- X " ",
- X " ",
- X
- X "__ ",
- X " \\\\ ", /* weird stuff again */
- X! " \\\\ ",
- X! " \\\\ ",
- X! " | ",
- X
- X " \\ ",
- X " || ",
- X " || ",
- X+ " || ",
- X " / ",
- X
- X! " | ",
- X! " // ",
- X! " // ",
- X "__// ",
- X " "
- X+
- X };
- X
- X
- X***************
- X*** 490,496 ****
- X float xt,yt,slope;
- X char *c;
- X
- X! if (ship->is_dead)
- X return;
- X
- X switch (where->level) {
- X--- 494,500 ----
- X float xt,yt,slope;
- X char *c;
- X
- X! if (!ship->is_alive)
- X return;
- X
- X switch (where->level) {
- X***************
- X*** 514,539 ****
- X switch (ship->type) {
- X
- X case STYPE_MIRROR:
- X! if (ship->orders.aimed_at.level==LEVEL_STAR) {
- X! xt = Stars[ship->orders.aimed_at.snum]->xpos;
- X! yt = Stars[ship->orders.aimed_at.snum]->ypos;
- X! } else if (ship->orders.aimed_at.level==LEVEL_PLAN) {
- X if (where->level==LEVEL_PLAN &&
- X! ship->orders.aimed_at.pnum == where->pnum) {
- X /* same planet */
- X! xt = Stars[ship->orders.aimed_at.snum]->xpos + pl->xpos;
- X! yt = Stars[ship->orders.aimed_at.snum]->ypos + pl->ypos;
- X } else { /* different planet */
- X openpdata(&pdata);
- X getplanet(pdata,&apl,Stars[where->snum]->planetpos[where->pnum]);
- X close(pdata);
- X! xt = Stars[ship->orders.aimed_at.snum]->xpos + apl->xpos;
- X! yt = Stars[ship->orders.aimed_at.snum]->ypos + apl->ypos;
- X free(apl);
- X }
- X! } else if (ship->orders.aimed_at.level==LEVEL_SHIP) {
- X openshdata(&shipdata);
- X! if (getship(shipdata,&aship,ship->orders.aimed_at.shipno)) {
- X xt = aship->xpos;
- X yt = aship->ypos;
- X } else
- X--- 518,543 ----
- X switch (ship->type) {
- X
- X case STYPE_MIRROR:
- X! if (ship->aimed_at.level==LEVEL_STAR) {
- X! xt = Stars[ship->aimed_at.snum]->xpos;
- X! yt = Stars[ship->aimed_at.snum]->ypos;
- X! } else if (ship->aimed_at.level==LEVEL_PLAN) {
- X if (where->level==LEVEL_PLAN &&
- X! ship->aimed_at.pnum == where->pnum) {
- X /* same planet */
- X! xt = Stars[ship->aimed_at.snum]->xpos + pl->xpos;
- X! yt = Stars[ship->aimed_at.snum]->ypos + pl->ypos;
- X } else { /* different planet */
- X openpdata(&pdata);
- X getplanet(pdata,&apl,Stars[where->snum]->planetpos[where->pnum]);
- X close(pdata);
- X! xt = Stars[ship->aimed_at.snum]->xpos + apl->xpos;
- X! yt = Stars[ship->aimed_at.snum]->ypos + apl->ypos;
- X free(apl);
- X }
- X! } else if (ship->aimed_at.level==LEVEL_SHIP) {
- X openshdata(&shipdata);
- X! if (getship(shipdata,&aship,ship->aimed_at.shipno)) {
- X xt = aship->xpos;
- X yt = aship->ypos;
- X } else
- X***************
- X*** 543,604 ****
- X } else
- X xt = yt = 0.0;
- X
- X! slope = (xt - ship->xpos) / (yt - ship->ypos);
- X
- X! if (yt - ship->ypos > 0) {
- X! if (slope > 0) {
- X! if (slope > 1) {
- X! if (slope > 2)
- X! wm = 0;
- X! else
- X! wm = 1;
- X! } else {
- X! if (slope > .5)
- X! wm = 1;
- X! else
- X! wm = 2;
- X! }
- X } else {
- X! if (slope < -1) {
- X! if (slope < -2)
- X! wm = 0;
- X! else
- X! wm = 7;
- X! } else {
- X! if (slope < .5)
- X! wm = 7;
- X! else
- X! wm = 6;
- X! }
- X! }
- X! } else {
- X! if (slope > 0) {
- X! if (slope > 1) {
- X! if (slope > 2)
- X! wm = 4;
- X! else
- X! wm = 5;
- X! } else {
- X! if (slope > .5)
- X! wm = 5;
- X! else
- X! wm = 6;
- X! }
- X! } else {
- X! if (slope < -1) {
- X! if (slope < -2)
- X! wm = 4;
- X! else
- X! wm = 3;
- X! } else {
- X! if (slope < .5)
- X! wm = 3;
- X! else
- X! wm = 2;
- X! }
- X }
- X- }
- X
- X DispArray(x,y, 9,5, Mirror[wm],
- X ship->whatorbits==LEVEL_UNIV ? (float)100.0 :
- X (ship->whatorbits==LEVEL_STAR ? (float)10.0 :
- X--- 547,583 ----
- X } else
- X xt = yt = 0.0;
- X
- X! wm=0;
- X
- X! if(xt == ship->xpos){
- X! wm=0;
- X! if(yt > ship->ypos)wm=4;
- X } else {
- X! slope = (yt - ship->ypos) / (xt - ship->xpos);
- X! if(yt == ship->ypos){
- X! wm=6;
- X! if(xt > ship->xpos)wm=2;
- X! }
- X!
- X! if(yt > ship->ypos) {
- X! if(slope < -2.414)wm=4;
- X! if(slope > -2.414)wm=5;
- X! if(slope > -0.414)wm=6;
- X! if(slope > 0.000)wm=2;
- X! if(slope > 0.414)wm=3;
- X! if(slope > 2.414)wm=4;
- X! }
- X! if(yt < ship->ypos) {
- X! if(slope < -2.414)wm=0;
- X! if(slope > -2.414)wm=1;
- X! if(slope > -0.414)wm=2;
- X! if(slope > 0.000)wm=6;
- X! if(slope > 0.414)wm=7;
- X! if(slope > 2.414)wm=0;
- X! }
- X }
- X
- X+
- X DispArray(x,y, 9,5, Mirror[wm],
- X ship->whatorbits==LEVEL_UNIV ? (float)100.0 :
- X (ship->whatorbits==LEVEL_STAR ? (float)10.0 :
- X***************
- X*** 605,612 ****
- X (ship->whatorbits==LEVEL_PLAN ? (float)1.0 :0)));
- X /* (magnification) */
- X if (x>=0 && x<=S_X && y>=0 && y<=S_Y) {
- X move(y,x+1);
- X! printw("%d",shipno);
- X }
- X break;
- X
- X--- 584,593 ----
- X (ship->whatorbits==LEVEL_PLAN ? (float)1.0 :0)));
- X /* (magnification) */
- X if (x>=0 && x<=S_X && y>=0 && y<=S_Y) {
- X+ if(ship->owner==Playernum)standout();
- X move(y,x+1);
- X! printw("m%d",shipno);
- X! standend();
- X }
- X break;
- X
- X***************
- X*** 626,641 ****
- X register float fac;
- X /* make a cloud of Von Neumann machines */
- X if (ship->whatorbits!=LEVEL_UNIV || (ship->owner == Playernum || God)) {
- X! fac = ship->orders.object.number /
- X ((ship->whatorbits==LEVEL_UNIV ? 100.0 :
- X (ship->whatorbits==LEVEL_STAR ? 30.0 : 4.0)) * Zoom);
- X! for (n=1; n<=ship->orders.object.number && n<267; n++) {
- X xa = int_rand(x - (int)fac, x + (int)fac);
- X ya = int_rand(y - (int)(fac*S_Y/S_X),
- X y + (int)(fac*S_Y/S_X));
- X if (xa>=0 && xa<=S_X && ya>=0 && ya<=S_Y) {
- X mvaddch(ya,xa, Shipltrs[ship->type]);
- X printw("%d",shipno);
- X }
- X }
- X }
- X--- 607,624 ----
- X register float fac;
- X /* make a cloud of Von Neumann machines */
- X if (ship->whatorbits!=LEVEL_UNIV || (ship->owner == Playernum || God)) {
- X! fac = ship->object.number /
- X ((ship->whatorbits==LEVEL_UNIV ? 100.0 :
- X (ship->whatorbits==LEVEL_STAR ? 30.0 : 4.0)) * Zoom);
- X! for (n=1; n<=ship->object.number && n<267; n++) {
- X xa = int_rand(x - (int)fac, x + (int)fac);
- X ya = int_rand(y - (int)(fac*S_Y/S_X),
- X y + (int)(fac*S_Y/S_X));
- X if (xa>=0 && xa<=S_X && ya>=0 && ya<=S_Y) {
- X+ if(ship->owner==Playernum)standout();
- X mvaddch(ya,xa, Shipltrs[ship->type]);
- X printw("%d",shipno);
- X+ standend();
- X }
- X }
- X }
- X***************
- X*** 646,653 ****
- X--- 629,638 ----
- X /* other ships can only be seen when in system */
- X if (ship->whatorbits!=LEVEL_UNIV || (ship->owner == Playernum || God))
- X if (x>=0 && x<=S_X && y>=0 && y<=S_Y) {
- X+ if(ship->owner==Playernum)standout();
- X mvaddch(y,x, Shipltrs[ship->type]);
- X printw("%d",shipno);
- X+ standend();
- X }
- X break;
- X }
- X*** ../../GB2/order.c Wed Jul 5 15:15:42 1989
- X--- order.c Fri Sep 15 07:28:38 1989
- X***************
- X*** 33,39 ****
- X first = 1;
- X prerror = 0;
- X
- X- clear(); move(0,0);
- X
- X if (argn>=2) {
- X if (args[1][0]=='#') {
- X--- 33,38 ----
- X***************
- X*** 84,92 ****
- X }
- X
- X }
- X- /* move to bottom of screen */
- X- move(stdscr->_maxy-2,0);
- X- refresh();
- X
- X }
- X
- X--- 83,88 ----
- X***************
- X*** 93,103 ****
- X
- X /* various prompt locations so we don't have to remember the #'s */
- X #define Opromptx 19
- X! #define Oprompty 7
- X #define Erry (Oprompty+1)
- X #define Spromptx (25+PLACENAMESIZE)
- X #define Sprompty 2
- X! #define Tpromptx Spromptx
- X #define Tprompty 4
- X #define Dprompty 2
- X #define Dpromptx 15
- X--- 89,100 ----
- X
- X /* various prompt locations so we don't have to remember the #'s */
- X #define Opromptx 19
- X! #define Oprompty 12
- X! #define Lprompty 8
- X #define Erry (Oprompty+1)
- X #define Spromptx (25+PLACENAMESIZE)
- X #define Sprompty 2
- X! #define Tpromptx 15
- X #define Tprompty 4
- X #define Dprompty 2
- X #define Dpromptx 15
- X***************
- X*** 104,111 ****
- X #define SWprompty 5
- X #define SWpromptx 2
- X #define Bprompty 6
- X
- X-
- X int give_orders(APcount, shipno, nextship)
- X int APcount;
- X int shipno;
- X--- 101,112 ----
- X #define SWprompty 5
- X #define SWpromptx 2
- X #define Bprompty 6
- X+ #define Nprompty 3
- X+ #define Cpromptx 18
- X+ #define Trnpromptx 44
- X+ #define Pprompty 7
- X+ #define Ppromptx 18
- X
- X int give_orders(APcount, shipno, nextship)
- X int APcount;
- X int shipno;
- X***************
- X*** 116,121 ****
- X--- 117,127 ----
- X int i = 0;
- X shiptype *ship, *oldship, ship2;
- X char c,s[PLACENAMESIZE];
- X+
- X+ clear(); move(0,0);
- X+ /* move to bottom of screen */
- X+ move(stdscr->_maxy-2,0);
- X+ refresh();
- X
- X openshdata(&order_shdata);
- X if (!getship(order_shdata,&ship,shipno)) {
- X***************
- X*** 126,132 ****
- X
- X if (ship->owner==Playernum) {
- X
- X! if (ship->is_dead) {
- X printw("%s #%d has been destroyed.\n", Shipnames[ship->type], shipno);
- X i = 1;
- X } else {
- X--- 132,138 ----
- X
- X if (ship->owner==Playernum) {
- X
- X! if (!ship->is_alive) {
- X printw("%s #%d has been destroyed.\n", Shipnames[ship->type], shipno);
- X i = 1;
- X } else {
- X***************
- X*** 166,172 ****
- X }
- X
- X move(0,0);
- X! printw("%13s #%-4d at '%s'. (%2d APs)",
- X Shipnames[ship->type], shipno, prin_ship_orbits(ship),
- X ship->whatorbits==LEVEL_UNIV ? Sdata.AP[Playernum] :
- X Stars[ship->storbits]->AP[Playernum]);
- X--- 172,181 ----
- X }
- X
- X move(0,0);
- X! standout();
- X! printw(" %s ",ship->name);
- X! standend();
- X! printw(" (%s) #%-4d at '%s'. (%2d APs)",
- X Shipnames[ship->type], shipno, prin_ship_orbits(ship),
- X ship->whatorbits==LEVEL_UNIV ? Sdata.AP[Playernum] :
- X Stars[ship->storbits]->AP[Playernum]);
- X***************
- X*** 181,211 ****
- X printw("(s)peed: %d\n",ship->speed);
- X }
- X }
- X if (can_aim(ship)) {
- X was_obj = 1;
- X move(4,0);
- X printw("(a)imed at: %s", prin_aimed_at(ship));
- X if (ship->type==STYPE_MIRROR)
- X! printw("\n (i)ntensity: %3d",ship->orders.aimed_at.intensity);
- X } else if (ship->type==OTYPE_TRANSDEV) {
- X move(Tprompty,Tpromptx-18);
- X! printw("(t)arget ship #%d", ship->orders.object.number);
- X } else if (ship->type==STYPE_MINE) {
- X move(Tprompty,Tpromptx-18);
- X! printw("(t)rigger radius: %d", ship->orders.object.number);
- X } else if (can_bombard(ship)) {
- X was_obj = 0;
- X move(Bprompty,0); clrtoeol();
- X! if (ship->orders.o.bombard)
- X if (ship->whatdest==LEVEL_PLAN)
- X! printw("(b)OMBARD planet %s",
- X ship->whatdest==LEVEL_PLAN ?
- X prin_ship_dest(ship) : "" );
- X else
- X! printw("(b)OMBARD ON (no planet specified)");
- X else
- X printw("(b)ombard off");
- X }
- X if (has_switch(ship)) {
- X move(SWprompty,SWpromptx);
- X printw("(o)%s", ship->on ? "n" : "ff");
- X--- 190,254 ----
- X printw("(s)peed: %d\n",ship->speed);
- X }
- X }
- X+ if (can_navigate(ship)) {
- X+ move(3,0); clrtoeol();
- X+ if (ship->navigate.on)
- X+ printw("(n)avigate on: (c)ourse %3u (#) of turns %3u",
- X+ ship->navigate.bearing,
- X+ ship->navigate.turns);
- X+ else
- X+ printw("(n)avigate off");
- X+ }
- X if (can_aim(ship)) {
- X was_obj = 1;
- X move(4,0);
- X printw("(a)imed at: %s", prin_aimed_at(ship));
- X if (ship->type==STYPE_MIRROR)
- X! printw("\n (i)ntensity: %3d",ship->aimed_at.intensity);
- X } else if (ship->type==OTYPE_TRANSDEV) {
- X move(Tprompty,Tpromptx-18);
- X! printw("(t)arget ship #%d", ship->object.number);
- X } else if (ship->type==STYPE_MINE) {
- X move(Tprompty,Tpromptx-18);
- X! printw("(t)rigger radius: %d", ship->object.number);
- X! move(Tprompty+1,Tpromptx-18);
- X! if(!ship->mine.mode)printw("(m)ode: radiation");
- X! if(ship->mine.mode)printw("(m)ode: explosive");
- X } else if (can_bombard(ship)) {
- X was_obj = 0;
- X move(Bprompty,0); clrtoeol();
- X! if (ship->bombard)
- X if (ship->whatdest==LEVEL_PLAN)
- X! printw("(b)ombard planet %s",
- X ship->whatdest==LEVEL_PLAN ?
- X prin_ship_dest(ship) : "" );
- X else
- X! printw("(b)ombard on (no planet specified)");
- X else
- X printw("(b)ombard off");
- X }
- X+ if (can_bombard(ship) || ship->type==OTYPE_GR) {
- X+ move(Pprompty,0); clrtoeol();
- X+ if (ship->protect.on)
- X+ {
- X+ printw("(p)rotect ship #%d",ship->protect.ship);
- X+ clrtoeol();
- X+ } else {
- X+ printw("(p)rotect off");
- X+ clrtoeol();
- X+ }
- X+ }
- X+ if (can_bombard(ship) || ship->type==OTYPE_GR) {
- X+ move(Lprompty,0); clrtoeol();
- X+ if (ship->protect.planet)
- X+ {
- X+ printw("p(l)anetary defense on");
- X+ clrtoeol();
- X+ } else {
- X+ printw("p(l)anetary defense off");
- X+ clrtoeol();
- X+ }
- X+ }
- X if (has_switch(ship)) {
- X move(SWprompty,SWpromptx);
- X printw("(o)%s", ship->on ? "n" : "ff");
- X***************
- X*** 220,226 ****
- X ship->type==STYPE_MIRROR ? "i" : "");
- X else
- X printw("%s%s ESC?):", has_switch(ship) ? "o" : "",
- X! ship->type==STYPE_MINE ? "t" : "", ship->type==OTYPE_TRANSDEV ? "t" : "" );
- X
- X }
- X
- X--- 263,271 ----
- X ship->type==STYPE_MIRROR ? "i" : "");
- X else
- X printw("%s%s ESC?):", has_switch(ship) ? "o" : "",
- X! ship->type==STYPE_MINE ? "t" : "",
- X! ship->type==STYPE_MINE ? "m" : "",
- X! ship->type==OTYPE_TRANSDEV ? "t" : "" );
- X
- X }
- X
- X***************
- X*** 241,247 ****
- X--- 286,371 ----
- X Mod=0;
- X touchwin(stdscr);
- X } break;
- X+ case 'p':
- X+ /* toggle protect option */
- X+ if(can_bombard(ship) || ship->type==OTYPE_GR) {
- X+ ship->protect.on = !ship->protect.on;
- X+ move(Pprompty,0);
- X+ if(ship->protect.on)
- X+ {
- X+ printw("(p)rotect s(h)ip #%d",
- X+ ship->protect.ship); clrtoeol();
- X+ } else {
- X+ printw("(p)rotect off"); clrtoeol();
- X+ }
- X+ }
- X+ break;
- X
- X+ case 'l':
- X+ /* toggle protect option */
- X+ if(can_bombard(ship) || ship->type == OTYPE_GR) {
- X+ ship->protect.planet = !ship->protect.planet;
- X+ move(Lprompty,0);
- X+ if(ship->protect.planet)
- X+ {
- X+ printw("p(l)anetary defense on");
- X+ clrtoeol();
- X+ } else {
- X+ printw("p(l)anetary defense off");
- X+ clrtoeol();
- X+ }
- X+ }
- X+ break;
- X+ case 'h':
- X+ if(ship->protect.on) {
- X+ unsigned i;
- X+ move(Pprompty,Ppromptx); refresh();
- X+ tty_off();
- X+ scanw("%u",&i);
- X+ if(i != shipno)
- X+ ship->protect.ship = i;
- X+ else
- X+ printf("you can't `protect' yourself!\n");
- X+ tty_on();
- X+ }
- X+ break;
- X+ case 'n':
- X+ /* toggle navigate option */
- X+ if(can_navigate(ship)) {
- X+ ship->navigate.on = !ship->navigate.on;
- X+ move(Nprompty,0);
- X+ printw("(n)avigate o%s ",ship->navigate.on ? "n : " : "ff");
- X+ clrtoeol();
- X+ if(ship->navigate.on)printw(" (c)ourse %3u (#) of turns %3u",
- X+ ship->navigate.bearing,
- X+ ship->navigate.turns);
- X+
- X+ }
- X+ break;
- X+
- X+ case '#':
- X+ /* set number of turns for navigate option */
- X+ if(ship->navigate.on) {
- X+ unsigned i;
- X+ move(Nprompty,Trnpromptx+6); refresh();
- X+ tty_off();
- X+ scanw("%u",&i);
- X+ ship->navigate.turns = i;
- X+ tty_on();
- X+ }
- X+ break;
- X+
- X+ case 'c':
- X+ /* set course for navigate option */
- X+ if(ship->navigate.on) { unsigned i;
- X+ move(Nprompty,Cpromptx+10); refresh();
- X+ tty_off();
- X+ scanw("%u",&i);
- X+ ship->navigate.bearing = i;
- X+ tty_on();
- X+ }
- X+ break;
- X+
- X case 'o':
- X /* on/off switch */
- X if (has_switch(ship)) {
- X***************
- X*** 281,289 ****
- X ungetc(c,stdin);
- X scanw("%43s",s);
- X move(Erry,0); refresh();
- X- Locks(1);
- X where = Getplace(s, 1);
- X- Locks(0);
- X if (!where.err) {
- X if (where.level==LEVEL_SHIP) {
- X ship->destshipno = where.shipno;
- X--- 405,411 ----
- X***************
- X*** 347,352 ****
- X--- 469,483 ----
- X } else
- X makerr(c);
- X break;
- X+ case 'm':
- X+ if (ship->type==STYPE_MINE) {
- X+ move(Tprompty+1,Tpromptx-18);
- X+ clrtoeol();
- X+ refresh();
- X+ if(!ship->mine.mode)printw("(m)ode: radiation");
- X+ if(ship->mine.mode)printw("(m)ode: explosive");
- X+ ship->mine.mode = !ship->mine.mode;
- X+ }
- X
- X case 't':
- X if (ship->type==STYPE_MINE) {
- X***************
- X*** 353,366 ****
- X move(Tprompty,Tpromptx); clrtoeol();
- X refresh(); tty_off();
- X
- X! ship->orders.object.number = 0;
- X
- X! scanw("%hd", &ship->orders.object.number);
- X tty_on();
- X! if (ship->orders.object.number < 0)
- X! ship->orders.object.number = 0;
- X move(Tprompty,Tpromptx);
- X! printw("%d",ship->orders.object.number); clrtoeol();
- X
- X } else if (ship->type==OTYPE_TRANSDEV) {
- X
- X--- 484,497 ----
- X move(Tprompty,Tpromptx); clrtoeol();
- X refresh(); tty_off();
- X
- X! ship->object.number = 0;
- X
- X! scanw("%hd", &ship->object.number);
- X tty_on();
- X! if (ship->object.number < 0)
- X! ship->object.number = 0;
- X move(Tprompty,Tpromptx);
- X! printw("%d",ship->object.number); clrtoeol();
- X
- X } else if (ship->type==OTYPE_TRANSDEV) {
- X
- X***************
- X*** 367,378 ****
- X move(Tprompty,Tpromptx); clrtoeol();
- X refresh(); tty_off();
- X
- X! ship->orders.object.number = 0;
- X
- X! scanw("%hd", &ship->orders.object.number);
- X tty_on();
- X move(Tprompty,Tpromptx);
- X! printw("%d",ship->orders.object.number); clrtoeol();
- X
- X } else
- X makerr(c);
- X--- 498,509 ----
- X move(Tprompty,Tpromptx); clrtoeol();
- X refresh(); tty_off();
- X
- X! ship->object.number = 0;
- X
- X! scanw("%hd", &ship->object.number);
- X tty_on();
- X move(Tprompty,Tpromptx);
- X! printw("%d",ship->object.number); clrtoeol();
- X
- X } else
- X makerr(c);
- X***************
- X*** 393,402 ****
- X if (pl.err) {
- X break;
- X } else {
- X! ship->orders.aimed_at.level = pl.level;
- X! ship->orders.aimed_at.pnum = pl.pnum;
- X! ship->orders.aimed_at.snum = pl.snum;
- X! ship->orders.aimed_at.shipno = pl.shipno;
- X if (ship->type!=OTYPE_TRACT &&
- X ship->type!=OTYPE_GTELE)
- X ship->fuel -= FUEL_MANEUVER;
- X--- 524,533 ----
- X if (pl.err) {
- X break;
- X } else {
- X! ship->aimed_at.level = pl.level;
- X! ship->aimed_at.pnum = pl.pnum;
- X! ship->aimed_at.snum = pl.snum;
- X! ship->aimed_at.shipno = pl.shipno;
- X if (ship->type!=OTYPE_TRACT &&
- X ship->type!=OTYPE_GTELE)
- X ship->fuel -= FUEL_MANEUVER;
- X***************
- X*** 423,437 ****
- X if ((c=getchr())!='\n') {
- X ungetc(c,stdin);
- X scanw("%u",&i);
- X! ship->orders.aimed_at.intensity = i;
- X Mod=1;
- X! if (ship->orders.aimed_at.intensity>100)
- X! ship->orders.aimed_at.intensity=100;
- X! else if (ship->orders.aimed_at.intensity<0)
- X! ship->orders.aimed_at.intensity=0;
- X }
- X move(5,14);
- X! printw("%3d",ship->orders.aimed_at.intensity);
- X tty_on();
- X } else
- X makerr(c);
- X--- 554,568 ----
- X if ((c=getchr())!='\n') {
- X ungetc(c,stdin);
- X scanw("%u",&i);
- X! ship->aimed_at.intensity = i;
- X Mod=1;
- X! if (ship->aimed_at.intensity>100)
- X! ship->aimed_at.intensity=100;
- X! else if (ship->aimed_at.intensity<0)
- X! ship->aimed_at.intensity=0;
- X }
- X move(5,14);
- X! printw("%3d",ship->aimed_at.intensity);
- X tty_on();
- X } else
- X makerr(c);
- X***************
- X*** 441,449 ****
- X if (can_bombard(ship)) {
- X move(Bprompty,0);
- X clrtoeol();
- X! ship->orders.o.bombard = !ship->orders.o.bombard;
- X Mod=1;
- X! if (ship->orders.o.bombard)
- X if (ship->whatdest==LEVEL_PLAN)
- X printw("(b)OMBARD planet %s",
- X ship->whatdest==LEVEL_PLAN ?
- X--- 572,580 ----
- X if (can_bombard(ship)) {
- X move(Bprompty,0);
- X clrtoeol();
- X! ship->bombard = !ship->bombard;
- X Mod=1;
- X! if (ship->bombard)
- X if (ship->whatdest==LEVEL_PLAN)
- X printw("(b)OMBARD planet %s",
- X ship->whatdest==LEVEL_PLAN ?
- X***************
- X*** 469,474 ****
- X--- 600,606 ----
- X printw(" o -- turn object on/off\n");
- X if (ship->type==STYPE_MINE)
- X printw(" t -- trigger radius\n");
- X+ printw(" m -- change combat mode\n");
- X if (ship->type==OTYPE_TRANSDEV)
- X printw(" t -- transporter target\n");
- X if (can_bombard(ship))
- X***************
- X*** 519,529 ****
- X planettype *p;
- X int plan_give_orders_pdata,Planmod=0;
- X
- X- Locks(1); /* we are only looking up data unchanged by the shell */
- X openpdata(&plan_give_orders_pdata);
- X getplanet(plan_give_orders_pdata,&p,filepos);
- X close(plan_give_orders_pdata);
- X- Locks(0);
- X
- X sh = p->ships;
- X while (sh)
- X--- 651,659 ----
- X***************
- X*** 562,571 ****
- X {
- X placetype targ;
- X
- X! targ.level = ship->orders.aimed_at.level;
- X! targ.snum = ship->orders.aimed_at.snum;
- X! targ.pnum = ship->orders.aimed_at.pnum;
- X! targ.shipno = ship->orders.aimed_at.shipno;
- X return Dispplace(&targ);
- X }
- X
- X--- 692,701 ----
- X {
- X placetype targ;
- X
- X! targ.level = ship->aimed_at.level;
- X! targ.snum = ship->aimed_at.snum;
- X! targ.pnum = ship->aimed_at.pnum;
- X! targ.shipno = ship->aimed_at.shipno;
- X return Dispplace(&targ);
- X }
- X
- X***************
- X*** 609,615 ****
- X int sdata,pdata;
- X float xf,yf;
- X
- X! str = Stars[s->orders.aimed_at.snum];
- X
- X if (s->is_docked && s->whatdest==LEVEL_PLAN) {
- X openpdata(&pdata);
- X--- 739,745 ----
- X int sdata,pdata;
- X float xf,yf;
- X
- X! str = Stars[s->aimed_at.snum];
- X
- X if (s->is_docked && s->whatdest==LEVEL_PLAN) {
- X openpdata(&pdata);
- X***************
- X*** 623,629 ****
- X yf = s->ypos;
- X }
- X
- X! switch (s->orders.aimed_at.level) {
- X case LEVEL_UNIV:
- X move(Erry,0);
- X printw("There is nothing out here to aim at.");
- X--- 753,759 ----
- X yf = s->ypos;
- X }
- X
- X! switch (s->aimed_at.level) {
- X case LEVEL_UNIV:
- X move(Erry,0);
- X printw("There is nothing out here to aim at.");
- X***************
- X*** 633,641 ****
- X printw("Star %s ", prin_aimed_at(s));
- X if ((dist=sqrt(Distsq(xf, yf, str->xpos, str->ypos))) <= tele_range(Race, s) ) {
- X openstardata(&sdata);
- X! getstar(sdata, &str, s->orders.aimed_at.snum);
- X setbit(str->explored,Playernum);
- X! putstar(sdata, str, s->orders.aimed_at.snum);
- X close(sdata); /* don't need to care about Stars */
- X printw("has been surveyed, distance %g.\n",dist);
- X } else {
- X--- 763,771 ----
- X printw("Star %s ", prin_aimed_at(s));
- X if ((dist=sqrt(Distsq(xf, yf, str->xpos, str->ypos))) <= tele_range(Race, s) ) {
- X openstardata(&sdata);
- X! getstar(sdata, &str, s->aimed_at.snum);
- X setbit(str->explored,Playernum);
- X! putstar(sdata, str, s->aimed_at.snum);
- X close(sdata); /* don't need to care about Stars */
- X printw("has been surveyed, distance %g.\n",dist);
- X } else {
- X***************
- X*** 647,657 ****
- X move(Erry,0);
- X printw("Planet %s ", prin_aimed_at(s));
- X openpdata(&pdata);
- X! getplanet(pdata, &p, str->planetpos[s->orders.aimed_at.pnum]);
- X if ((dist=sqrt(Distsq(xf, yf, str->xpos+p->xpos, str->ypos+p->ypos))) <= tele_range(Race, s) ) {
- X setbit(str->explored,Playernum);
- X p->info[Playernum-1].explored = 1;
- X! putplanet(pdata, p, str->planetpos[s->orders.aimed_at.pnum]);
- X free(p);
- X printw("has been surveyed, distance %g.\n", dist);
- X } else {
- X--- 777,787 ----
- X move(Erry,0);
- X printw("Planet %s ", prin_aimed_at(s));
- X openpdata(&pdata);
- X! getplanet(pdata, &p, str->planetpos[s->aimed_at.pnum]);
- X if ((dist=sqrt(Distsq(xf, yf, str->xpos+p->xpos, str->ypos+p->ypos))) <= tele_range(Race, s) ) {
- X setbit(str->explored,Playernum);
- X p->info[Playernum-1].explored = 1;
- X! putplanet(pdata, p, str->planetpos[s->aimed_at.pnum]);
- X free(p);
- X printw("has been surveyed, distance %g.\n", dist);
- X } else {
- X*** /dev/null Fri Sep 15 08:30:02 1989
- X--- patchlevel.h Fri Sep 15 08:33:35 1989
- X***************
- X*** 0 ****
- X--- 1 ----
- X+ #define PATCHLEVEL 1
- END_OF_FILE
- if test 50119 -ne `wc -c <'patches01c'`; then
- echo shar: \"'patches01c'\" unpacked with wrong size!
- fi
- # end of 'patches01c'
- fi
- echo shar: End of archive 3 \(of 4\).
- cp /dev/null ark3isdone
- MISSING=""
- for I in 1 2 3 4 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 4 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-